SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TCAMAR_OCPR_Q01]  
/*----------------------------------------------------------------*/  
/*-- Empresa  : OFISIS S.A.      */  
/*-- Cliente  : OFISIS     */  
/*-- Sistema  : Tesoreria      */  
/*-- Programa  : Reporte Seguimiento Aplicaciones Pagos O/C    
      a FACTURAS */  
/*-- Script  : TDAMAR_OCPR_Q01       */  
/*-- Nombre  : SP_TCAMAR_OCPR_Q01         */  
/*-- Desarrollado : Daniel Chiang        */  
/*-- Fecha  : 196/04/2000       */  
/*-- Base de Datos : MS SQL Server      */  
/*-- Versi®n  : 7.0       */  
/*----------------------------------------------------------------*/  
  
/*----------------------------------------------------------------*/  
/*-- Modificado por  :        */  
/*-- Fecha modificaci®n  :         */  
/*-- Detalle modificaci®n:   n     */  
/*----------------------------------------------------------------*/  
/* drop proc SP_TCAMAR_OCPR_Q01        */  
/* grant all on SP_TCAMAR_OCPR_Q01 to public     */  
/* SP_TCAMAR_OCPR_Q01 '01', '00000002', '00000002'      */  
/*----------------------------------------------------------------*/  
  
 @ISCO_EMPR TD_VC_002,  
 @ISCO_UNID_CONC TD_VC_003,  
 @ISNU_AMAR_INIC TD_VC_008,   
 @ISNU_AMAR_FINA TD_VC_008,  
 @IDFE_AMAR TD_DT_001  
 As  
Declare  
 @CSCO_TIDO_ORIG   TD_VC_003,  
 @CSNU_DOCU_ORIG   TD_VC_020,  
 @CSCO_TIDO_DEST   TD_VC_003,  
 @CSNU_DOCU_DEST   TD_VC_020,  
 @CSNU_AMAR        TD_VC_008,  
 @CDFE_AMAR    TD_DT_001,  
 @CSCO_MONE    TD_VC_003,  
 @CNIM_PAGO_ORIG   TD_NU_016_004,  
 @CNIM_PAGO_DEST   TD_NU_016_004,  
 @VSNU_AMAR_AUXI   TD_VC_008,  
 @VINU_SECU        TD_IN_001  
  
  Create Table #TWAMAR_OCPR  
  ( NU_TRAN        Varchar(8) NULL,   
    NU_SECU        int  NULL,    
    FE_AMAR    Datetime  NULL,  
    CO_MONE    VarChar(3)   NULL,   
    CO_TIDO_ORIG   VarChar(3)   NULL,  
    NU_DOCU_ORIG   VarChar(15)   NULL,  
    IM_PAGO_ORIG   NUMERIC(16,4),  
    CO_TIDO_DEST   VarChar(3)   NULL,  
    NU_DOCU_DEST   VarChar(15)   NULL,  
    IM_PAGO_DEST   NUMERIC(16,4))  
  
--Select @VINU_SECU = 0  
-- El CU_TDAMAR_OCPR_Q01_1 posee un documento con su n-mero  
  
Select @VSNU_AMAR_AUXI = '@@@@'  
  
Declare CU_TDAMAR_OCPR_Q01_1 cursor  
For  
Select T1.NU_AMAR, T2.FE_AMAR, T2.CO_MONE, T1.CO_TIDO_ORIG, T1.NU_DOCU_ORIG, T1.IM_PAGO_CORI  
From TDAMAR_OCPR T1, TCAMAR_OCPR T2  
Where T1.CO_EMPR = @ISCO_EMPR   
And T1.CO_UNID_CONC = @ISCO_UNID_CONC  
And T1.NU_AMAR >= @ISNU_AMAR_INIC   
And T1.NU_AMAR <= @ISNU_AMAR_FINA  
And Year(T1.FE_AMAR) = Year(@IDFE_AMAR)  
And Month(T1.FE_AMAR) = Month(@IDFE_AMAR)  
AND T1.CO_EMPR = T2.CO_EMPR  
And T1.CO_UNID_CONC = T2.CO_UNID_CONC  
AND T1.NU_AMAR = T2.NU_AMAR  
AND T1.FE_AMAR = T2.FE_AMAR  
And CO_TIDO_ORIG IS NOT NULL   
  
Open CU_TDAMAR_OCPR_Q01_1  
Fetch CU_TDAMAR_OCPR_Q01_1 into @CSNU_AMAR, @CDFE_AMAR, @CSCO_MONE, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CNIM_PAGO_ORIG  
While @@fetch_status = 0  
  Begin  
    If @@fetch_status != 0  
       Begin  
         Raiserror 20001 'Fin de archivo'  
         Close CU_TDAMAR_OCPR_Q01_1  
         Deallocate CU_TDAMAR_OCPR_Q01_1  
         Return   
       end   
  
    If @CSNU_AMAR != @VSNU_AMAR_AUXI  
       Begin  
 Select @VSNU_AMAR_AUXI = @CSNU_AMAR  
 Select @VINU_SECU = 0  
       End   
  
    Select @VINU_SECU = @VINU_SECU + 1  
  
    Insert into #TWAMAR_OCPR (NU_TRAN, NU_SECU, FE_AMAR, CO_MONE, CO_TIDO_ORIG, NU_DOCU_ORIG, IM_PAGO_ORIG)  
    Values (@CSNU_AMAR, @VINU_SECU, @CDFE_AMAR, @CSCO_MONE, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CNIM_PAGO_ORIG)  
  
    Fetch CU_TDAMAR_OCPR_Q01_1 into @CSNU_AMAR, @CDFE_AMAR, @CSCO_MONE, @CSCO_TIDO_ORIG, @CSNU_DOCU_ORIG, @CNIM_PAGO_ORIG  
  End  
  
Close CU_TDAMAR_OCPR_Q01_1  
Deallocate CU_TDAMAR_OCPR_Q01_1  
  
--Select * from #TWAMAR_OCPR  
--Order by NU_TRAN, NU_SECU  
  
  
Select @VINU_SECU = 0  
Select @VSNU_AMAR_AUXI = '@@@@'  
  
-- cursor obtiene todas las letras del documento por proveedor  
Declare CU_TDAMAR_OCPR_Q01_1 cursor  
For  
Select NU_AMAR, CO_TIDO_DEST, NU_DOCU_DEST, IM_PAGO_CDES  
From TDAMAR_OCPR  
Where CO_EMPR = @ISCO_EMPR  
And CO_UNID_CONC = @ISCO_UNID_CONC  
  
And NU_AMAR >= @ISNU_AMAR_INIC   
And NU_AMAR <= @ISNU_AMAR_FINA  
And Year(FE_AMAR) = Year(@IDFE_AMAR)  
And Month(FE_AMAR) = Month(@IDFE_AMAR)  
and CO_TIDO_DEST IS NOT NULL   
  
Open CU_TDAMAR_OCPR_Q01_1  
Fetch CU_TDAMAR_OCPR_Q01_1 into @CSNU_AMAR, @CSCO_TIDO_DEST, @CSNU_DOCU_DEST, @CNIM_PAGO_DEST  
While @@fetch_status = 0  
  Begin  
    If @@fetch_status != 0  
Begin  
         Raiserror 20001 'Fin de archivo'  
         Close CU_TDAMAR_OCPR_Q01_1  
         Deallocate CU_TDAMAR_OCPR_Q01_1  
         Return   
       end   
  
--    Select @CSNU_AMAR, @CSCO_TIDO_DEST, @CSNU_DOCU_DEST  
  
    If @CSNU_AMAR != @VSNU_AMAR_AUXI  
       Begin  
 Select @VSNU_AMAR_AUXI = @CSNU_AMAR  
 Select @VINU_SECU = 0  
       End   
  
    Select @VINU_SECU = @VINU_SECU + 1  
  
    If NOT Exists ( Select * From #TWAMAR_OCPR   
 Where NU_TRAN = @CSNU_AMAR  
 And   NU_SECU = @VINU_SECU)  
       Insert into #TWAMAR_OCPR (NU_TRAN, NU_SECU, CO_TIDO_DEST, NU_DOCU_DEST, IM_PAGO_DEST)  
       Values (@CSNU_AMAR, @VINU_SECU, @CSCO_TIDO_DEST, @CSNU_DOCU_DEST, @CNIM_PAGO_DEST)  
    Else   
       Update #TWAMAR_OCPR   
       Set CO_TIDO_DEST = @CSCO_TIDO_DEST, NU_DOCU_DEST = @CSNU_DOCU_DEST, IM_PAGO_DEST = @CNIM_PAGO_DEST  
       Where NU_TRAN = @CSNU_AMAR And NU_SECU = @VINU_SECU    
  
     Fetch CU_TDAMAR_OCPR_Q01_1 into @CSNU_AMAR, @CSCO_TIDO_DEST, @CSNU_DOCU_DEST, @CNIM_PAGO_DEST  
  End  
  
close CU_TDAMAR_OCPR_Q01_1  
deallocate CU_TDAMAR_OCPR_Q01_1  
  
Select   T1.NU_TRAN, T1.FE_AMAR, T2.DE_MONE, T1.CO_TIDO_ORIG, T1.NU_DOCU_ORIG, T1.IM_PAGO_ORIG, T1.CO_TIDO_DEST,   
  T1.NU_DOCU_DEST, CASE WHEN T3.ST_SIGN='N' THEN -1 ELSE 1 END * T1.IM_PAGO_DEST   
From     #TWAMAR_OCPR T1  
Left Outer Join TTMONE T2
On    T1.CO_MONE = T2.CO_MONE, TTDOCU_CNTB T3    
where T1.CO_TIDO_DEST=T3.TI_DOCU
Order By NU_TRAN, NU_SECU   
Return  
  
/*------------------------------ FIN ---------------------------------*/  
  

GO
